using namespace std;

#include <string>
#include "RegistroFijo.h"

RegistroFijo::RegistroFijo(){
	this->campoActual = 0;
}

void RegistroFijo::addCampo(void* valor, bool clave, string tipo){
	this->tipos.push_back(tipo);
	this->claves.push_back(clave);
	this->valores.push_back(valor);
	this->cantidad.push_back(1);
}

void RegistroFijo::addCampo(string valor, bool clave, int tamanio){
	//se guarda como arreglo de char. Esta bien para registro fijo??
	string tipo("char");

	this->claves.push_back(clave);
	this->tipos.push_back(tipo);
	this->valores.push_back(&valor);
	this->cantidad.push_back(tamanio);
}

int RegistroFijo::getTamanio(){
	int tamanio = 0;
	list<string>::iterator itTipos = this->tipos.begin();
	while(itTipos != this->tipos.end()){
		if((*itTipos) == "int"){
			tamanio += sizeof(int);
		} else if((*itTipos) == "char"){
			tamanio += sizeof(char);
		} else if((*itTipos) == "double"){
			tamanio += sizeof(double);
		}

		itTipos++;
	}

	return tamanio;
}
